跳到主要内容

Kubernetes 使用 minikube 搭建测试环境

minikube 是啥?

minikube:一个用于快速搭建单节点 Kubernetes 的工具,minikube 可以借助于本地的虚拟化能力,通过 Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox 和 VMWare 等创建出虚拟机,然后在虚拟机中搭建出 Kubernetes 集群来。

Minikube 直接利用 Docker 创建集群

但是这个 minikube 主要是用于快速搭建本地的开发测试环境,没办法用来搭建生产集群。真的使用的话还是要用 kubeadm 来搭建集群。

安装 minikube

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

运行服务

minikube start --image-mirror-country='cn' --driver=docker

然后就能看到自己的集群了

kubectl get po -A

打开 Kubernetes 仪表板

# 启动一个新的终端,并保持此命令运行。
minikube dashboard --url

注意:这玩意打开的巨慢,需要等一会

使用 kubectl

使用 kubectl 最好使用 minikube 的内置 kubectl,避免执行报错

创建别名

alias kubectl="minikube kubectl --"

创建一个 Pod

创建一个 twocontainers.yaml 文件

apiVersion: v1 # 指定当前描述文件遵循v1版本的Kubernetes API
kind: Pod # 我们在描述一个 pod
metadata:
name: twocontainers # 指定 pod 的名称
namespace: default # 指定当前描述的 pod 所在的命名空间
labels: # 指定 pod 标签
app: twocontainers
annotations: # 指定 pod 注释
version: v0.5.0
releasedBy: david
purpose: demo
spec:
containers:
- name: simplesrv # 容器的名称
image: quay.io/openshiftlabs/simpleservice:0.5.0 # 创建容器所使用的镜像
ports:
- containerPort: 9876 # 应用监听的端口
- name: simplesrv-shell # 容器的名称
image: ubuntu:latest # 创建容器所使用的镜像
command: # 容器启动命令
- 'bin/bash'
- '-c'
- 'sleep 10000'

创建 Pod

$ kubectl create -f ./twocontainers.yaml

kubectl exec --stdin --tty simplesrv-shell -- /bin/bash

看控制台,如果报错

Failed to pull image "ubuntu:latest": rpc error: code = Unknown desc = Error response from daemon: Head "https://registry-1.docker.io/v2/library/ubuntu/manifests/latest": Get "https://auth.docker.io/token?scope=repository%3Alibrary%2Fubuntu%3Apull&service=registry.docker.io": net/http: TLS handshake timeout

检查一下代理使用的 HTTPS 是不是 http 协议,如果是的话,改成 https 就好了

注意:如果修改了代理需要重启,否则会报错(注意 WSL2 修改了代理,需要重启终端才能生效)

References